<?php
class UsuarioDAO{

    public function listar(){
        $query = "SELECT id, rol, usuario, nombre FROM usuarios";
        $res = mysql_query($query) or die("Error SQL2");
        return DBManager::mysql_fetch_assoc_all($res);
    }

    public function listarControladores(){
        $query = "SELECT id, usuario, nombre FROM usuarios
        WHERE rol = 'administrador' OR rol = 'controlador'";
        $res = mysql_query($query) or die("Error SQL2");
        $usuarios = array();
        while($fila = mysql_fetch_assoc($res)){
            $usuarios[] = new Usuario($fila['usuario'], $fila['id'], "", "", $fila['nombre']);
        }

        return $usuarios;
    }

    public function listarControladoresEncuesta($id_encuesta){
        $usuarios = array();

        $query = "SELECT usuarios.id, usuarios.usuario, usuarios.nombre
        FROM usuarios
        JOIN encuestas_controladores ON (usuarios.id = encuestas_controladores.id_usuario)
        WHERE encuestas_controladores.id_encuesta = $id_encuesta";

        $res = mysql_query($query) or die("error SQLs $query");
        while($fila = mysql_fetch_assoc($res)){
            $usuarios[] = new Usuario($fila['usuario'], $fila['id'], "", "", $fila['nombre']);
        }

        return $usuarios;
    }
    public function traerPorId($id){
        $query = "SELECT id, rol, usuario FROM usuarios WHERE id = $id";
        $res = mysql_query($query) or die("Error SQL3");
        return mysql_fetch_assoc($res);
    }
    
    public function persistir($usuario){
        $n = mysql_real_escape_string($usuario['nombre']);
        $u = mysql_real_escape_string($usuario['usuario']);
        $c = mysql_real_escape_string($usuario['clave']);
        $r = mysql_real_escape_string($usuario['rol']);

        if($this->existe($u))
            return false;
           
        $query = "INSERT INTO usuarios VALUES(NULL, '$r', '$n', '$u', MD5('$c'))";
        mysql_query($query) or die("Error SQL $query");

        return true;
    }

    public function modificar($usuario){
        $n = mysql_real_escape_string($usuario['nombre']);
        $u = mysql_real_escape_string($usuario['usuario']);
        $c = mysql_real_escape_string($usuario['clave']);
        $r = mysql_real_escape_string($usuario['rol']);
        $id = $usuario['id'];

        //Verificar que no exista el usuario
        $query = "SELECT usuario FROM usuarios WHERE usuario = '$u' AND id != $id";
        $res = mysql_query($query) or die("ERR SQL");
        if(mysql_fetch_array($res) != false)
            return false;



        $query = "UPDATE usuarios SET nombre='$n', usuario='$u', rol='$r'";
        if(!empty($c))
            $query .= ", clave = MD5('$c')";
        $query .= " WHERE id = $id";

        mysql_query($query) or die("Error SQL $query");

    }

    private function existe($usuario){
        $query = "SELECT usuario FROM usuarios WHERE usuario = '$usuario'";
        $res = mysql_query($query) or die("Error SQL1");
        if(!mysql_fetch_array($res))
            return false;
        else
            return true;
    }

    public function eliminar($id){
        $query = "DELETE FROM usuarios WHERE id = $id";
        mysql_query($query) or die("ERR sql");

    }
    



}

?>
